以畫面操作搭配 Log Message 觀察 Activity 生命週期
android.util.Log
將 Log 訊息推送至全系統,於上述工具 Logcat 可看到 Log 訊息內容。d
,意義為「debug」,語法如下:
Log.d("tag", "message")
專案根目錄/app/src/main/java/專案package/MainActivity.kt
的 MainActivity。import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
private const val TAG = "App_MainActivity" //宣告 Log 訊息標籤,用以分類篩選
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(TAG,"onCreate(Bundle?) called")
}
override fun onStart() {
super.onStart()
Log.d(TAG,"onStart() called")
}
override fun onResume() {
super.onResume()
Log.d(TAG,"onResume() called")
}
override fun onPause() {
super.onPause()
Log.d(TAG,"onPause() called")
}
override fun onStop() {
super.onStop()
Log.d(TAG,"onStop() called")
}
override fun onDestroy() {
super.onDestroy()
Log.d(TAG,"onDestroy() called")
}
}
App_MainActivity
,可篩選出我們在上方程式碼宣告的 TAG 相關訊息(下圖紅框處)。運作情境 | Log Message | 備註 |
---|---|---|
Home 鍵 | onPause → onStop | 未發生onDestroy,Activity未被銷毀 |
承上,從桌面回到 App | onStart → onResume | 恢復Activity,無需再次onCreate |
Overview 鍵 | onPause → onStop | 未發生onDestroy,Activity未被銷毀 |
承上,從 Overview 回到 App | onStart → onResume | 恢復Activity,無需再次onCreate |
Back 鍵 | onPause → onStop → onDestroy | onDestroy發生,Activity被銷毀 |
承上,回到 App | onCreate → onStart → onResume | onCreate 發生,代表重新創建 Activity |
旋轉螢幕 | onPause → onStop → onDestroy → onCreate → onStart → onResume | onDestroy發生,Activity被銷毀;旋轉方向後 onCreate 發生,重新創建 Activity |